/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package umbook.controller;

import java.io.Serializable;
import umbook.dao.UsuarioDAO;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import umbook.entity.Usuarios;

/**
 *
 * @author ing
 */
@ManagedBean
@SessionScoped
public class UsuariosController implements Serializable{

    int startId;
    int endId;
    DataModel usuarioNombres;
    UsuarioDAO helper;
    private int recordCount = 1000;
    private int pageSize = 10;
    private Usuarios current;
    private Usuarios usuarioActual;
    private int selectedItemIndex;

    public UsuariosController() {
        helper = new UsuarioDAO();
        startId = 1;
        endId = 10;
        
    }

    public UsuariosController(int startId, int endId) {
        helper = new UsuarioDAO();
        this.startId = startId;
        this.endId = endId;
    }

    public Usuarios getSelected() {
        if (current == null) {
            current = new Usuarios();
            selectedItemIndex = -1;
        }
        return current;
    }

    public DataModel getUsuarioNombres() {
        if (usuarioNombres == null) {
            usuarioNombres = new ListDataModel(helper.getUsuariosNombres(startId, endId));
        }
        return usuarioNombres;
    }

    void recreateModel() {
        usuarioNombres = null;


    }

    //PARA MOSTRAR Y PAGINAR
    public boolean isHasNextPage() {
        if (endId + pageSize <= recordCount) {
            return true;
        }
        return false;
    }

    public boolean isHasPreviousPage() {
        if (startId - pageSize > 0) {
            return true;
        }
        return false;
    }

    public String next() {
        startId = endId + 1;
        endId = endId + pageSize;
        recreateModel();
        return "index";
    }

    public String previous() {
        startId = startId - pageSize;
        endId = endId - pageSize;
        recreateModel();
        return "index";
    }

    public int getPageSize() {
        return pageSize;
    }

    public String prepareView() {
        current = (Usuarios) getUsuarioNombres().getRowData();
        return "browse";
    }

    public String prepareList() {
        recreateModel();
        return "index";
    }

    //#################
    public boolean verificar(String mail, String passwd) {
        Usuarios usu1 = helper.validar(mail, passwd);
        if (usu1 == null) {
            return false;
        } else {
            return true;
        }

    }

    public boolean agregarUsuario(Usuarios usuarioNuevo) {

        if (!verificar(usuarioNuevo.getMailUser(), usuarioNuevo.getPassUser())) {

            helper.insertarUsuario(usuarioNuevo);
            return true;
        
        }else{
        
            return false;
        }

    }
    
    public Usuarios getUsuariosBymail(String mail){
    
        return helper.getUsuariosBymail(mail);
    }
}
